# -*- coding: utf-8 -*-

import csv
import sqlite3
'''
trabalha com ficheiros csv e bases de dados 
''' 

# declaracao de constantes indicadores da posicao dos itens no 
# ficheiros csv

ORDEM = 0
NUMERO = 1
NOME = 2



#
# primeira tecnica de leitura de ficheiros csv
#

# abertura do ficheiro para leitura
ficheiro = open('precencaslp23outubro.csv', 'r')

# para cada linha do ficheiro formacao de uma lista elementos
# separados por virgulas
for line in ficheiro:
	lista = line.split(',')
	#print lista[ORDEM], ':' , lista[NUMERO], ':', lista[NOME]
	pass 
	
# Em alternativa, processamento com a biblioteca padrao

reader = csv.reader(open('precencaslp23outubro.csv', 'r'))
# gera imediatamente a linha separada por virgulas
for linha_linha in reader:
	#print lista_linha
	pass 


# e agora utilizacao da biblioteca sqlite3
conn = sqlite3.connect('precencas.sqlite3')

# o cursor e um iterador de posicao na base de dados
cursor = conn.cursor()
reader = csv.reader(open('precencaslp23outubro.csv', 'r'))

# c - contador para impedir a escrita na base de dados
# dos dados da primeira linha do ficheiro csv
c = 0
for lista_linha in reader:
	# se ainda nao leu a primeira linha
	# prossegue para a segunda linha
	c += 1
	if c == 1:
		continue
	
	# parte -se do principio de que ja esta criada a base de dados
	# com uma tabela designada por alunos e com tres campos
	# designados por ordem, numero e nome
	# instrucao sql
	cursor.execute('DROP TABLE IF EXISTS alunos')
	cursor.execute('CREATE TABLE alunos (ordem, numero , nome)')

	
	instrucao = '''INSERT INTO alunos VALUES ("{0}", "{1}", "{2}")'''.format(lista_linha[ORDEM], 
														   lista_linha[NUMERO],
														   lista_linha[NOME])
	
	# aqui se executa a instrucao SQL
	
	conn.execute(instrucao)	
	
	 

# sem commit() os dados nao ficam na base de dados
conn.commit()
cursor.close()												   
														   
###



def main():
	
	return 0

if __name__ == '__main__':
	main()

